package com.spic.business.accident.analysisReport.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.spic.business.accident.analysisReport.domain.AccidentAnalysisReport;
import com.spic.business.accident.analysisReport.domain.AccidentAnalysisReportDto;
import com.spic.business.accident.analysisReport.domain.AccidentAnalysisReportTreatmentSubtable;

import java.util.List;

/**
 * 事故分析报告Mapper接口
 *
 * @author spic
 * @date 2021-11-30
 */
public interface AccidentAnalysisReportMapper extends BaseMapper<AccidentAnalysisReport>
{
    /**
     * 查询事故分析报告
     *
     * @param id 事故分析报告主键
     * @return 事故分析报告
     */
    public AccidentAnalysisReport selectAccidentAnalysisReportById(Long id);

    /**
     * 查询事故分析报告列表
     *
     * @param accidentAnalysisReport 事故分析报告
     * @return 事故分析报告集合
     */
    public List<AccidentAnalysisReport> selectAccidentAnalysisReportList(AccidentAnalysisReport accidentAnalysisReport);

    /**
     * 查询事故分析报告列表
     *
     * @param accidentAnalysisReport 事故分析报告Id
     * @return 事故分析报告集合
     */
    public List<AccidentAnalysisReport> selectAccidentAnalysisReportListById(AccidentAnalysisReport accidentAnalysisReport);

    /**
     * 新增事故分析报告
     *
     * @param accidentAnalysisReport 事故分析报告
     * @return 结果
     */
    public int insertAccidentAnalysisReport(AccidentAnalysisReport accidentAnalysisReport);

    /**
     * 修改事故分析报告
     *
     * @param accidentAnalysisReport 事故分析报告
     * @return 结果
     */
    public int updateAccidentAnalysisReport(AccidentAnalysisReport accidentAnalysisReport);

    /**
     * 删除事故分析报告
     *
     * @param id 事故分析报告主键
     * @return 结果
     */
    public int deleteAccidentAnalysisReportById(Long id);

    /**
     * 批量删除事故分析报告
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAccidentAnalysisReportByIds(Long[] ids);

    /**
     * 批量修改事故分析报告
     *
     * @param accidentAnalysisReportDto 需要修改的事故分析报告
     * @return 结果
     */
    public int updateAccidentAnalysisReportByDto(AccidentAnalysisReportDto accidentAnalysisReportDto);

    /**
     * 获取本年份事故分析报告数量
     *
     * @param year 当前年分
     * @return 结果
     */
    public List<AccidentAnalysisReport> countAnalysis(String year);


    public int deleteAccidentAnalysisReportTreatmentSubtableIds(Long[] ids);

    public int batchAccidentAnalysisReportTreatmentSubtable(List<AccidentAnalysisReportTreatmentSubtable> accidentAnalysisReportTreatmentSubtableList);

    public int deleteAccidentAnalysisReportTreatmentSubtableByParentId(Long id);
}

